ci: smoke-test published releases on every supported OS/arch#43
Merged
Conversation
Add a manually-triggered workflow that pulls a released version from Maven Central and runs a JBang smoke test on one GitHub-hosted runner per native classifier: linux-x86_64 (ubuntu-latest), linux-aarch64 (ubuntu-24.04-arm), osx-x86_64 (macos-13), osx-aarch64 (macos-14), windows-x86_64 (windows-latest), windows-aarch64 (windows-11-arm). The smoke (.github/smoke/Smoke.java) exercises a core compress/decompress round-trip plus a dictionary train + round-trip, so it proves the bundled native library actually loads and works on real hardware for each arch — not a source build (no zig, no submodule), exactly what users consume. Verified locally end-to-end on osx-aarch64 against 0.6 (core 40000 -> 38 bytes, dictionary round-trip passed, zstd 1.5.7). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Make the version input optional: leave it blank to auto-resolve the latest release from zstd's maven-metadata.xml (<release>), or pass a specific version to override. A resolve job picks the version and feeds it to the matrix. Verified the metadata fetch returns 0.6. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a Monday 06:00 UTC schedule. Scheduled runs carry no input, so the resolve job auto-picks the latest Maven Central release — catching Central or runner-image drift against the published artifact without a manual run. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A manually-triggered (
workflow_dispatch) matrix that verifies a published release on Maven Central actually loads and runs on every supported OS/arch — one GitHub-hosted runner per native classifier.Matrix
ubuntu-latestubuntu-24.04-armmacos-13macos-14windows-latestwindows-11-armARM Linux/Windows runners are GA and free for public repos.
What it does
Pulls
zstd:<version>+ the matchingzstd-native-<classifier>:<version>from Central (no source build, no zig, no submodule) and runs.github/smoke/Smoke.javavia JBang: a core compress/decompress round-trip plus a dictionary train + round-trip. Proves the bundled native library loads and works on real hardware per arch — exactly what users consume.Trigger from the Actions tab; defaults to
0.6.Validation
Compiled against the real
zstd:0.6API (caught thatZstdDictionaryisn'tAutoCloseable— fixed) and ran end-to-end on osx-aarch64:OK Mac OS X/aarch64 | zstd 1.5.7 | core 40000 -> 38 bytes | dictionary round-trip passed.Follow-ups
jbangdev/setup-jbang@mainshould be SHA-pinned to match the repo's action-pinning convention (seesetup-ziginci.yml).windows-11-arm/ubuntu-24.04-arm; swap distribution if a leg fails at setup-java.🤖 Generated with Claude Code